from car_info import CarInfo
from date_util import DateUtil
from db_util import DbUtil

db_util = DbUtil()

# 最大停车数
max_car = db_util.get_garage_size()
# 停车费单价
unit_price = db_util.get_unit_price()

if __name__ == '__main__':
    """ 需要实现功能 1.停车 2.出场 3.查询 4.历史 5.退出 """
    while True:
        print("----------欢迎来到-停车管理系统----------")
        choice = input("请选择需要的功能 1.停车 2.出场 3.查询 4.历史 5.退出\r\n")
        print("****************************************")
        if choice == '1':
            """ 先判断是否有空车位 """
            cur_car = db_util.get_current_car_amount()
            if max_car == cur_car:
                print("目前没有车位，请等待一会或寻找其他停车场。")
                break
            else:
                print("目前还有%d个车位" % (max_car - cur_car))
                plate_number = input("停车费为 %.2f￥/小时；请录入车牌号：\r\n" % unit_price)
                start_time = db_util.get_car_start_time(plate_number)
                # 如果能查到说明已经进入停车场
                if start_time:
                    print("您已经登录过入场信息，请直接进入或选择出场。")
                else:
                    db_util.in_storage(plate_number)  # 记录进入停车场
                    print("车牌号为%s的车进场，当前时间为%s" % (plate_number, DateUtil.get_current_date_str()))
        elif choice == '2':
            # 先查询汽车是否存在，如果不存在建议其联系管理员
            plate_number = input("请输入你的车牌：\r\n")
            start_time = db_util.get_car_start_time(plate_number)
            if start_time is not None:
                d2, price = CarInfo.query_info(start_time, unit_price)
                db_util.car_pay(CarInfo(plate_number, start_time, d2, price))
            else:
                print("你的车辆信息不存在，请联系管理员")
                break
        elif choice == '3':
            plate_number = input("请输入你的车牌：\r\n")
            start_time = db_util.get_car_start_time(plate_number)
            if start_time is not None:
                CarInfo.query_info(start_time, unit_price)
            else:
                print("你的车辆信息不存在或已出停车场。")
                continue
        elif choice == '4':
            plate_number = input("请输入你的车牌：\r\n")
            result = db_util.get_history(plate_number)
            if result is not None:
                for i in result:
                    print(i)
            else:
                print("没有该车的历史信息。")
                continue
        elif choice == '5':
            break
        else:
            print("请选择正确功能：")
            continue
